package cn.zebra.dev.product.module.category.service;

import cn.zebra.dev.ibatis.plus.service.IService;
import cn.zebra.dev.ibatis.plus.utils.PageUtils;
import cn.zebra.dev.product.module.category.entity.CategoryEntity;

import java.util.List;
import java.util.Map;

/**
 * @author runnable@sina.cn
 */
public interface CategoryService extends IService<CategoryEntity> {

    PageUtils<CategoryEntity> findPage(Map<String, Object> params);

    List<CategoryEntity> findALLByIds(List<Long> ids);
    /**
     * 根据分类级别查询分类列表
     */
    List<CategoryEntity> findByLevelType(Integer levelType);


    /**
     * 根据分类级别查询分类id
     */
    List<CategoryEntity> findIdByLevel(Integer levelType);

    /**
     * 查询全部二级子目录
     */

    List<CategoryEntity> findAllByParentIds(List<Long> parentIds);

    /**
     * 保存分类信息
     *
     * @param entity   分类实体
     * @param createId 创建人
     * @return 保存成功返回True 失败返回False
     */
    Boolean saveCategory(CategoryEntity entity, Long createId);

    /**
     * 修改分类信息
     *
     * @param id       分类id
     * @param entity   分类实体
     * @param updateId 修改人
     * @return 修改成功返回True 失败返回 False
     */
    Boolean updateCategory(Long id, CategoryEntity entity, Long updateId);

    /**
     * 根据分类id查找分类是否存在
     *
     * @param id 分类id
     * @return 存在返回True 不存在返回False
     */
    Boolean isEntity(Long id);
}
